import type { ElementType, LegacyRef } from 'react';
import { ColorEnum, WidthEnum } from '../common';

export interface CardOptions {
  /**
   * 标签或组件名称
   * @default div
   */
  as?: ElementType;
  /**
   * 禁用
   */
  disabled?: boolean;
  /**
   * 加载
   */
  loading?: boolean | Array<'double' | 'usual'>;
  /**
   * 流体
   */
  fluid?: boolean;
  /**
   * 居中
   */
  centered?: boolean;
  /**
   * 水平
   */
  horizontal?: boolean;
  /**
   * 突起
   */
  raised?: boolean;
  /**
   * 链接
   */
  link?: boolean;
  /**
   * 深色背景
   */
  inverted?: boolean;
  /**
   * 颜色
   */
  color?: 'primary' | 'secondary' | ColorEnum;
  /**
   * 基本
   */
  basic?: boolean;
  /**
   * 转发 ref
   */
  forwardedRef?: LegacyRef<HTMLElement>;
}

export interface CardContentOptions {
  /**
   * 附加
   */
  extra?: boolean;
  /**
   * 对齐方式
   */
  aligned?: 'left' | 'center' | 'right';
  /**
   * 转发 ref
   */
  forwardedRef?: LegacyRef<HTMLElement>;
}

export interface CardHeaderOptions {
  /**
   * 标签或组件名称
   * @default div
   */
  as?: ElementType;
  /**
   * 对齐方式
   */
  aligned?: 'left' | 'center' | 'right';
  /**
   * 转发 ref
   */
  forwardedRef?: LegacyRef<HTMLElement>;
}

export interface CardMetaOptions {
  /**
   * 浮动
   */
  floated?: 'left' | 'right';
  /**
   * 对齐方式
   */
  aligned?: 'left' | 'center' | 'right';
  /**
   * 转发 ref
   */
  forwardedRef?: LegacyRef<HTMLElement>;
}

export interface CardDescriptionOptions {
  /**
   * 对齐方式
   */
  aligned?: 'left' | 'center' | 'right';
  /**
   * 转发 ref
   */
  forwardedRef?: LegacyRef<HTMLElement>;
}

export interface CardGroupOptions {
  /**
   * 链接
   */
  link?: boolean;
  /**
   * 水平
   */
  horizontal?: boolean;
  /**
   * 深色背景
   */
  inverted?: boolean;
  /**
   * 基本
   */
  basic?: boolean;
  /**
   * 列数
   */
  columns?: WidthEnum;
  /**
   * 堆叠
   */
  stackable?: boolean;
  /**
   * 加倍
   */
  doubling?: boolean;
  /**
   * 转发 ref
   */
  forwardedRef?: LegacyRef<HTMLElement>;
}
